1. Field of the Invention
The invention relates generally to a storage system and more specifically to a technique for migrating file-level data between servers in a global name space in which a plurality of file servers cooperate with each other and provide one name space.
2. Description of Related Art
A global name space (hereinafter abbreviated to “GNS”) is a technique for integrating share directories made public by a plurality of file servers and constructing a pseudo-single file system. In the GNS, file-level data is migrated for the purpose of hierarchical storage management, etc., for leveling access loads and used capacities so that they are not concentrated on a certain server or storing data accessed with high frequency in a high-speed, expensive, small-capacity storage apparatus and storing data accessed with low frequency in a low-speed, inexpensive, large-capacity storage apparatus.
Of methods for migrating data between file servers, a method using an apparatus (hereinafter referred to as an intermediate server) that relays communication between a client and a file server has been known (for example, see reference 1: US2004/0267830 “TRANSPARENT FILE MIGRATION USING NAMESPACE REPLICATION”).
When receiving a file access request for a certain object (file) from a certain client, the intermediate server transfers the file access request to a file server having the relevant object after converting the request to a format that can be interpreted by that file server.
The intermediate server provides a GNS, and when migrating data between the file servers, hides from the client the fact that the data has been migrated, so that the client can access the migrated file using the same name space used before the migration.
On the other hand, the file server employs a technique called snapshot that captures an image for a file system at a certain time for use in backup or recovery for a file or the file system (for example, see reference 2: US2004-0186900 “METHOD OF MAINTAINING A PLURALITY OF SNAPSHOTS, SERVER APPARATUS AND STORAGE APPARATUS” and reference 3: US2006/0174075 “METHOD FOR CREATING AND PRESERVING SNAPSHOTS IN A STORAGE SYSTEM”). By capturing a snapshot periodically and mounting it to a certain point of the file system, even if a failure occurs in a file or a file system, the file or file system can be recovered relatively easily by referring to the snapshot that was captured during normal operation.
A snapshot is in general a differential snapshot that holds only differential data for an updated data block, instead of a copy of the data itself, and the differential snapshot makes an image for a virtual file system from the differential data and original data using a block copy management table, a block usage management table, etc.
The block copy management table and the block usage management table for providing the snapshot are managed only in the server providing the relevant snapshot, so file-level data is exchanged while the concept of blocks is hidden from an external server or a client. In other words, there is no interface for exchanging data in block units. Accordingly, when file-level data is migrated in a GNS, the original data in the migration source is deleted and a snapshot for the original file cannot be referred to any longer.
Even if both the original data and the block data in the snapshot are migrated in one way or another, they are not always placed in the same address they had before the migration, so the snapshot cannot be reconstructed simply by copying the block management table, etc.